草庐IT

C++ DLL 链接 Unresolved external

全部标签

windows - 使用 link.exe 链接时未重定位的地址

问题当我使用as(binutils)编译我的汇编代码并使用link.exe(VisualStudio2015)进行链接时,程序因地址未重定位而崩溃。当与gcc(gcchello-64-gas.obj-ohello-64-gas.exe)链接时,程序可以正常运行而不会崩溃。我是否正确地假设as生成的目标文件应该是独立于编译器的,因为abi兼容性问题在汇编代码编写者手中?由于我是初学者,因此感谢任何对我的错误/不正确假设的解释。平台Windows10,64位链接器:VisualStudio2015使用native命令工具命令提示符(x64)编译器:as来自MinGW-w64例子以下代码没有

c++ - GLEW 链接问题找不到 __imp_glGetIntegerv

注意:是的,我已经指定了GLEW_STATIC。因此,在尝试设置glew以用于新项目之前,我已经经历过这个rodeo,但现在我在项目中使用glew2.0,它会产生链接错误。我刚刚在Linux实例中生成了源代码并像这样使用它们。#include"Renderer.h"#include#include"GL/glew.h"#include"Logger.h"voidRenderer::init(void*windowHandle){Loggerlogger("Renderer::init");GLenumresult=glewInit();if(result!=GLEW_OK){LOG(l

c++ - C++ 指针是否跨 EXE 和 DLL 工作

我有一个C++应用程序,它有许多静态ibs(*.lib)和DLL。我在我的EXE中创建一个对象,然后我使用函数调用将指向该对象的指针从一个库传递到另一个库。在这个指针从主EXE移动到DLL函数的过程中,我想知道它会不会有什么问题,或者我需要注意什么预防措施。Main.EXEwith3staticlibs(A.lib,B.lib,C.lib)Main.EXEalsolinkswith2DLL's-d1.dll,d2.dll.EachofthesestaticlibraryandDLLalsostaticallylinkstoastaticlibraryX.lib.调用流程:main()i

windows - 在 GAC 中注册 DLL(CMD 或 PowerShell)

我正在尝试在GAC中注册一个.DLL。目前我无法证明它已添加到程序集中。使用命令C:\Windows\System32>%programfiles(x86)%\MicrosoftSDKs\Windows\v7.0A\Bin\gacutil.exe-i"path\to\my\file.dll"提示告诉我程序集已添加到缓存中。检查时C:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v7.0A\Bin>gacutil.exe-lfile.dll它说程序集中有0个元素。通过Powershell命令,我尝试像这样添加DLL:PSC:\WINDOWS\syste

c++ - 如何解决此 VC++ 6.0 链接器错误?

这是一个Windows控制台应用程序(实际上是一个服务),一个人在4年前构建并安装并运行。我现在需要进行一些更改,但甚至无法构建当前版本!这是构建输出:--------------------Configuration:MyApp-Win32Debug--------------------Compilingresources...Compiling...Main.cppwinsock.cppLinking...LINK:warningLNK4098:defaultlib"LIBCMTD"conflictswithuseofotherlibs;use/NODEFAULTLIB:libr

python - win32api.dll 不会安装

我正在尝试在WindowsXP虚拟机上启动BuildbotBuildslave:pythonbuildbotstart.ImportError:Nomodulenamedwin32api.Google告诉我win32api是win32api.dll。我从www.dll-files.com下载了该文件,并按照该站点(http://www.dll-files.com/unzip.php)上的指南进行操作。当我尝试运行regvr32win32api.dll时,它告诉我找不到指定的模块。tl;dr-我应该将win32api.dll放在哪里以便Windows安装它?我是否尝试使用错误的文件?(使

.net - Msvcr71.dll Msvcp71.dll 丢失

我写了一些应用程序。但是当我在多个操作系统上运行它时,我们会丢失这两个文件。当我将它们添加到windows\system32文件夹时,应用程序工作正常。我看到了这个解决方案how-to-install-msvcr71-dll-correctly但是有什么办法可以让我的应用程序使用最新.net附带的文件的更新版本分布。感谢您的帮助。 最佳答案 正如您链接到的帖子中提到的,使用适合您的文件版本并将它们与您的应用程序一起分发。这些是VC++dll,不是.Net。 关于.net-Msvcr71.

c++ - 如何使 64 位 dll 与 64 位版本的 Windows Server 2008、Windows 7 和 Windows XP 兼容?

我已经在WindowsServer200864位版本上编译了一个dll。它在该版本的Windows上运行良好,但如果我切换到Windows7或XP64位版本,dll将无法运行。如何使dll与所有三个版本的64位版本Windows兼容?我正在使用VisualStudio2010。 最佳答案 您可以使用名为DependencyWalker的程序查看您的.dll文件有哪些依赖项,并消除Windows版本之间不同的依赖项。 关于c++-如何使64位dll与64位版本的WindowsServer2

c - VB6 - 如何通过 .tlb 文件将字符串传递给用 C 编写的 DLL

我正在开发一个用VB6编写的图形界面,我必须在其中调用某个用C编写的DLL中包含的函数。因为knownlimitation我必须实现trick这允许我以隐式方式加载此DLL。这可以创建一个IDL文件,用MIDL编译它并在VB6项目中引用生成的.tlb文件。问题是VB6字符串和C字符数组不匹配,所以我无法将它们传递(并取回)到DLL。C函数的原型(prototype)是:int__stdcallmyFunc(charfilename_in[],charfilename_out[],charErrMsg[]);我应该在IDL文件中写什么,我应该如何从VB6中调用它?谢谢。

c++ - 我可以更改要在运行时加载的 dll 的名称吗?

假设我有一个名为middle.dll的dll,它正在从runme.dll导入函数我现在有一个替换的runmeDBG.dll,它具有与runme.dll相同的所有导出功能有没有一种方法可以使用middle.dll,但让它链接到从runmeDBG.dll而不是runme.dll导出的函数?我可以更改middle.dll的代码,但不知道将包含构建middle.dll时要使用的函数的dll的名称。(所有这些都在C/C++和Mingw工具集的上下文中) 最佳答案 如果您通过使用GetProcAddress访问DLL中的所有函数,那么是的,您可